home *** CD-ROM | disk | FTP | other *** search
- Curso de Assembler
- ^^^^^^^^^^^^^^^^^^
-
- En esta série de articulos abordaremos la programación en el lenguaje
- Ensamblador empezando desde lo más básico y llegando a poder programar
- cualquier cosa que queramos. El Assembler es el lenguaje más potente que
- existe porque es el único que entiende el procesador del ordenador, los
- demás (Pascal, C, etc) son sólo traductores a binario (o ensamblador).
- Una vez escuche en un lugar donde no me lo podía esperar nunca una
- afirmación del tipo: los lenguajes de alto nivel son más rápidos que el
- Ensamblador. Ésta afirmación se sustentaba en el hecho de que los
- modernos compiladores estan programados por grupos de expertos en Assembler
- que "saben más que nadie en ese campo". Así, se supone que nosotros para
- hacer un programa en Ensamblador más veloz que el programado en C o Pascal
- tendriamos que saber más que el programador experto en Assembler.
- Pensad un poco, si conoceis algo de éste lenguaje, y os dareis cuenta de
- que gran falacia se ésta afirmando... ¿ya? Incluso sin saber programar
- te das cuenta de que tonteria tan grande es afirmar eso: si yo me voy a Rusia
- y no sé Ruso tengo dos opciones, la primera acudir a un traductor que, aunque
- hubiese estudiado en las más prestigiosas universidades del planeta y hubiese
- vivido muchos años en ese país, no podría expresar lo que yo quiero al 100%
- y podría "engañarme" diciendo cosas que los ciudadanos rusos no han dicho o
- bien podría aprender ruso y expresarme como me diera la gana.
- Para el ensamblador lo mismo, aunque haya un gran grupo de expertos, ellos
- deben hacer el compilador con un propósito general y, los própios
- compiladores, no han llegado todavía a la altura del ser humano cuando
- se trata de encontrar truquitos y atajos en mitad del código. Para terminar
- con esta cuestión aclaratoria sólo hace falta un ejemplo: los compiladores
- de C que he probado, para poner iluminar un pixel de pantalla en un modo
- gráfico precisan de más de 200 ticks de reloj, yo he conseguido rutinas que
- sólo precisen alrededor de 10 (para los expertos un MOV, una rotación, dos
- sumas y un movimiento a memoria).
- El esquema que seguiremos durante el curso es bastante práctico.
- Empezaremos con una introducción a los procesadores 80x86 y el hardware del
- PC en general, una vez ya introducidos comenzaremos a ver las principales
- instrucciones de los procesadores de 16bits pusiendo ejemplos prácticos.
- Como la práctica me parece esencial, seguiremos el curso basandonos en
- ejemplos interesantes donde apareceran las instrucciones que todavía no se
- han visto y se explicarán a partir del código real. Más tarde nos
- adentraremos un poco en los procesadores avanzados (80386, 80486 y Pentium)
- explicando sus nuevos modos y como optimizar nuestro código para ellos.
- El último paso será todo aquello relacionado con la programación en Assembler
- pero que no es estrictamente necesario (programación TSR, control de DMA,
- etc.)
- En el próximo número, como ya he dicho, veremos una visión general del PC,
- los sistemas numéricos usados (binario y hexadecimal) y, si da tiempo, se
- verá algo de el procesador de Intel. Bueno, hasta el próximo número; y espero
- que con esta sección aprendais muy bien a hablar el Ruso :-)
-